#include "bits/stdc++.h"
using namespace std;
#define N 6

int main()
{
    // 输出一个矩形
    /*
    1 2 3
    8 9 4
    7 6 5

    1  2  3 4
   12 13 14 5
   11 16 15 6
   10 9  8  7

    */
    int i, j = 0, k; // k用来标记
    int number = 1;

    int ch[N][N] = {};
    int pomark[N * N];
    int n = N; // 初始值
    // 上下左右
    int top, bottom, right, left;
    // 初始化
    right = 0;
    left = n - 1;
    top = 0;
    bottom = n - 1;
    while (right <= left)
    {

        if (number == N * N + 1)
        {
            break;
        }

        for (i = right; i <= left; i++)
        { // 横排
            ch[top][i] = number++;
        }
        top++; // 行

        for (i = top; i <= bottom; i++)
        { // 左竖排
            ch[i][left] = number++;
        }
        left--; // 尾列
        // left:2 2-1=1 i=1
        for (i = left; i >= right; i--)
        { // 最低排
            ch[bottom][i] = number++;
        }
        bottom--; // 执行完底排之后；
                  // 3-2 =1 0 0>0
        for (i = bottom; i >= top; i--)
        {
            ch[i][right] = number++;
        }

        right++;
        // 还有行的数
    }

    // 输出
    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < N; j++)
            printf("%3d", ch[i][j]);
        cout << "\n";
    }
    // printf("%d",ch[a-1][b-1]);
}